common.skill

পেজ লেআউট এবং মার্জিন কনফিগারেশন

Java Technologies - অ্যাপাচি পিওআই (ওয়ার্ড)
147
147

Apache POI লাইব্রেরি ব্যবহার করে আপনি Word ডকুমেন্টের পেজ লেআউট এবং মার্জিন কনফিগারেশন সেট করতে পারেন। পেজ লেআউটের মধ্যে পৃষ্ঠার অরিয়েন্টেশন (Portrait/Landscape), মার্জিন, পৃষ্ঠার সাইজ ইত্যাদি অন্তর্ভুক্ত থাকে। আপনি যদি ডকুমেন্টের একটি নির্দিষ্ট সেকশনে পেজ লেআউট পরিবর্তন করতে চান, তবে XWPF প্যাকেজ ব্যবহার করে এটি সম্ভব।


পেজ লেআউট কনফিগারেশন (Page Layout Configuration)

Word ডকুমেন্টে পেজ লেআউট কনফিগারেশন করতে XWPFDocument এবং CTPageMar (যা CTPage এর অংশ) ব্যবহার করতে হয়। এই কনফিগারেশন আপনি পেজের সাইজ, অরিয়েন্টেশন এবং মার্জিন সেট করতে পারবেন।


পৃষ্ঠার অরিয়েন্টেশন সেট করা (Portrait/Landscape)

পোর্ট্রেট এবং ল্যান্ডস্কেপ অরিয়েন্টেশন পরিবর্তন করতে পেজ লেআউটের জন্য CTPage কনফিগারেশন ব্যবহার করা হয়।

উদাহরণ: পোর্ট্রেট এবং ল্যান্ডস্কেপ অরিয়েন্টেশন

import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;

import java.io.FileOutputStream;
import java.io.IOException;

public class PageOrientationExample {
    public static void main(String[] args) {
        try {
            // নতুন Word ডকুমেন্ট তৈরি করা
            XWPFDocument document = new XWPFDocument();

            // প্রথম প্যারাগ্রাফ
            XWPFParagraph paragraph1 = document.createParagraph();
            XWPFRun run1 = paragraph1.createRun();
            run1.setText("This is a Portrait page.");

            // নতুন পৃষ্ঠা যোগ করা (ল্যান্ডস্কেপ)
            XWPFParagraph paragraph2 = document.createParagraph();
            paragraph2.setPageBreak(true); // নতুন পৃষ্ঠা তৈরি

            // ল্যান্ডস্কেপ অরিয়েন্টেশন সেট করা
            XmlCursor cursor = document.getDocument().newCursor();
            cursor.selectPath("./*");
            cursor.toNextToken();
            cursor.setName("w:sectPr");
            cursor.insertNamespace("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");

            cursor.insertElement("w:pgSz");
            cursor.insertAttribute("w:orient", "landscape");

            // দ্বিতীয় প্যারাগ্রাফে লেখা
            XWPFParagraph paragraph3 = document.createParagraph();
            XWPFRun run2 = paragraph3.createRun();
            run2.setText("This is a Landscape page.");

            // Word ডকুমেন্ট সেভ করা
            FileOutputStream out = new FileOutputStream("page_orientation_example.docx");
            document.write(out);
            out.close();

            System.out.println("Word document created with page orientation.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • w:pgSz এবং w:orient ব্যবহার করে পৃষ্ঠার অরিয়েন্টেশন পরিবর্তন করা হয়।
  • portrait অথবা landscape অরিয়েন্টেশন নির্ধারণ করতে এই কোডটি ব্যবহার করা হয়।

মার্জিন কনফিগারেশন (Margin Configuration)

পৃষ্ঠার মার্জিন সেট করতে CTPageMar (Page Margin) কনফিগারেশন ব্যবহার করা হয়। মার্জিনের প্রস্থ নির্ধারণ করতে আপনি left, right, top, bottom এ মান সেট করতে পারেন।

উদাহরণ: পৃষ্ঠার মার্জিন কনফিগারেশন

import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;

import java.io.FileOutputStream;
import java.io.IOException;

public class PageMarginExample {
    public static void main(String[] args) {
        try {
            // নতুন Word ডকুমেন্ট তৈরি করা
            XWPFDocument document = new XWPFDocument();

            // প্রথম প্যারাগ্রাফ
            XWPFParagraph paragraph1 = document.createParagraph();
            XWPFRun run1 = paragraph1.createRun();
            run1.setText("This page has custom margins.");

            // পৃষ্ঠার মার্জিন কনফিগারেশন
            XmlCursor cursor = document.getDocument().newCursor();
            cursor.selectPath("./*");
            cursor.toNextToken();
            cursor.setName("w:sectPr");
            cursor.insertNamespace("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");

            // মার্জিন সেট করা
            cursor.insertElement("w:pgMar");
            cursor.insertAttribute("w:left", "1440");  // Left margin (1 inch)
            cursor.insertAttribute("w:right", "1440"); // Right margin (1 inch)
            cursor.insertAttribute("w:top", "1440");   // Top margin (1 inch)
            cursor.insertAttribute("w:bottom", "1440");// Bottom margin (1 inch)

            // Word ডকুমেন্ট সেভ করা
            FileOutputStream out = new FileOutputStream("page_margin_example.docx");
            document.write(out);
            out.close();

            System.out.println("Word document created with custom page margins.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • w:pgMar উপাদানটি পৃষ্ঠার মার্জিন কনফিগারেশন সেট করার জন্য ব্যবহৃত হয়।
  • প্রতিটি মার্জিনের জন্য (left, right, top, bottom) একক হল twips, যেখানে 1 inch = 1440 twips।

পৃষ্ঠার সাইজ কনফিগারেশন (Page Size Configuration)

পৃষ্ঠার সাইজ কনফিগার করতে w:pgSz ব্যবহার করা হয়, যা সাধারণত A4 বা Letter সাইজের পৃষ্ঠা নির্ধারণে সহায়ক।

উদাহরণ: পৃষ্ঠার সাইজ কনফিগারেশন (A4)

import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;

import java.io.FileOutputStream;
import java.io.IOException;

public class PageSizeExample {
    public static void main(String[] args) {
        try {
            // নতুন Word ডকুমেন্ট তৈরি করা
            XWPFDocument document = new XWPFDocument();

            // প্রথম প্যারাগ্রাফ
            XWPFParagraph paragraph1 = document.createParagraph();
            XWPFRun run1 = paragraph1.createRun();
            run1.setText("This page has custom size A4.");

            // পৃষ্ঠার সাইজ কনফিগারেশন (A4)
            XmlCursor cursor = document.getDocument().newCursor();
            cursor.selectPath("./*");
            cursor.toNextToken();
            cursor.setName("w:sectPr");
            cursor.insertNamespace("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");

            cursor.insertElement("w:pgSz");
            cursor.insertAttribute("w:w", "11906"); // A4 width in twips (8.27 inches)
            cursor.insertAttribute("w:h", "16838"); // A4 height in twips (11.69 inches)

            // Word ডকুমেন্ট সেভ করা
            FileOutputStream out = new FileOutputStream("page_size_example.docx");
            document.write(out);
            out.close();

            System.out.println("Word document created with A4 page size.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • w:w এবং w:h ব্যবহার করে পৃষ্ঠার সাইজ নির্ধারণ করা হয়।
  • A4 সাইজের জন্য 11906 (width) এবং 16838 (height) টুইপস ব্যবহৃত হয়।

সারাংশ

Apache POI লাইব্রেরি ব্যবহার করে আপনি Word ডকুমেন্টের পেজ লেআউট এবং মার্জিন কনফিগারেশন করতে পারেন। আপনি পোর্ট্রেট এবং ল্যান্ডস্কেপ অরিয়েন্টেশন, মার্জিন (left, right, top, bottom) এবং পৃষ্ঠার সাইজ (A4, Letter) সহজেই কনফিগার করতে পারেন। এই কনফিগারেশনগুলি ডকুমেন্টের লেআউট এবং পেজের ফরম্যাট নিয়ন্ত্রণ করতে সাহায্য করে।

common.content_added_by

পেজ সাইজ এবং Orientation সেট করা (A4, Letter, Landscape)

134
134

Apache POI লাইব্রেরি ব্যবহার করে আপনি Word ডকুমেন্ট এর পেজ সাইজ এবং Orientation কাস্টমাইজ করতে পারেন। আপনি পেজ সাইজ (যেমন A4, Letter) এবং Orientation (Portrait অথবা Landscape) নির্ধারণ করতে পারেন XWPFDocument এবং XWPFStyle ক্লাসের মাধ্যমে।

এখানে একটি উদাহরণ দেখানো হলো, যেখানে A4 সাইজ এবং Landscape Orientation সেট করা হয়েছে।


পেজ সাইজ এবং Orientation সেট করার উদাহরণ

import org.apache.poi.xwpf.usermodel.*;

import java.io.*;
import org.apache.poi.ss.usermodel.PageSize;

public class PageSizeAndOrientationExample {
    public static void main(String[] args) {
        try {
            // নতুন Word ডকুমেন্ট তৈরি করা
            XWPFDocument document = new XWPFDocument();

            // পেজ সাইজ এবং Orientation কাস্টমাইজেশন
            XWPFStyle style = document.createStyle();
            CTPageSize pageSize = style.getCTStyle().addNewPgSz();
            
            // পেজ সাইজ সেট করা (A4)
            pageSize.setW(11906);  // A4 পেজের প্রস্থ (1/20th of a point)
            pageSize.setH(16838);  // A4 পেজের উচ্চতা (1/20th of a point)

            // Orientation সেট করা (Landscape)
            pageSize.setOrient(STPageOrientation.LANDSCAPE);

            // প্রথম প্যারাগ্রাফ তৈরি
            XWPFParagraph paragraph = document.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("এই ডকুমেন্টটি A4 সাইজ এবং Landscape Orientation এ তৈরি করা হয়েছে।");

            // ডকুমেন্টটি সেভ করা
            FileOutputStream out = new FileOutputStream("document_with_page_size_and_orientation.docx");
            document.write(out);
            out.close();

            System.out.println("পেজ সাইজ এবং Orientation সফলভাবে সেট করা হয়েছে!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

কোড বিশ্লেষণ:

  1. XWPFDocument: এটি একটি নতুন .docx ডকুমেন্ট তৈরি করে।
  2. createStyle(): এই মেথডের মাধ্যমে স্টাইল তৈরি করা হয়, যা পেজ সাইজ এবং Orientation নির্ধারণে ব্যবহৃত হয়।
  3. CTPageSize: এটি পেজ সাইজ কাস্টমাইজ করতে ব্যবহৃত হয়।
  4. setW() এবং setH(): A4 সাইজের প্রস্থ এবং উচ্চতা সেট করা হয়েছে।
    • A4 পেজের প্রস্থ: 11906 (1/20th of a point)
    • A4 পেজের উচ্চতা: 16838 (1/20th of a point)
  5. setOrient(STPageOrientation.LANDSCAPE): এটি পেজের Orientation Landscape হিসেবে সেট করে।
  6. createParagraph(): এটি নতুন একটি প্যারাগ্রাফ তৈরি করে, যেখানে টেক্সট থাকবে।
  7. createRun(): এটি প্যারাগ্রাফের মধ্যে একটি রান তৈরি করে এবং টেক্সট সেট করে।
  8. FileOutputStream: ডকুমেন্টটি সেভ করার জন্য এটি ব্যবহৃত হয়।

এই কোডটি একটি Word ডকুমেন্ট তৈরি করবে, যার পেজ সাইজ হবে A4 এবং Orientation হবে Landscape


অন্যান্য পেজ সাইজ এবং Orientation

আপনি চাইলে অন্যান্য পেজ সাইজ (যেমন Letter, Legal) এবং Orientation (Portrait) সেট করতে পারেন।

১. Letter সাইজ এবং Portrait Orientation:

// Letter পেজ সাইজ (21600 x 27936 1/20th of a point)
pageSize.setW(12240);  // প্রস্থ
pageSize.setH(15840);  // উচ্চতা

// Portrait Orientation (ডিফল্ট)
pageSize.setOrient(STPageOrientation.PORTRAIT);

২. Legal সাইজ এবং Landscape Orientation:

// Legal পেজ সাইজ (21600 x 34560 1/20th of a point)
pageSize.setW(12240);  // প্রস্থ
pageSize.setH(19440);  // উচ্চতা

// Landscape Orientation
pageSize.setOrient(STPageOrientation.LANDSCAPE);

সারাংশ

Apache POI লাইব্রেরি ব্যবহার করে আপনি Word ডকুমেন্ট এর পেজ সাইজ এবং Orientation কাস্টমাইজ করতে পারেন। XWPFStyle এবং CTPageSize ক্লাসের মাধ্যমে আপনি A4, Letter, Legal সাইজ এবং Portrait বা Landscape Orientation সেট করতে পারবেন। এর মাধ্যমে আপনি ডকুমেন্টের লেআউট সম্পূর্ণভাবে কাস্টমাইজ করতে পারেন।

common.content_added_by

মার্জিন এবং Indentation কনফিগার করা

152
152

Apache POI এর XWPF API ব্যবহার করে আপনি Word ডকুমেন্ট-এর মার্জিন (Margins) এবং Indentation (ইন্ডেন্টেশন) কনফিগার করতে পারেন। মার্জিন এবং ইন্ডেন্টেশন কনফিগার করে আপনি ডকুমেন্টের টেক্সটের অবস্থান, সন্নিবেশ (alignment), এবং পৃষ্ঠা সজ্জা নিয়ন্ত্রণ করতে পারবেন। এখানে, আমরা মার্জিন এবং ইন্ডেন্টেশন কিভাবে কনফিগার করা যায়, তা দেখব।


মার্জিন কনফিগার করা

Word ডকুমেন্টে মার্জিন পরিবর্তন করার জন্য, আপনাকে XWPFDocument এর XWPFSection ক্লাস ব্যবহার করতে হবে। মার্জিনগুলো সাধারণত top, bottom, left, এবং right হিসাবে কনফিগার করা যায়।

Example: মার্জিন কনফিগার করা

import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.xmlbeans.XmlCursor;

public class MarginExample {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি
        XWPFDocument document = new XWPFDocument();

        // সেকশন তৈরি করা
        XWPFSection section = document.createSection();

        // মার্জিন কনফিগার করা
        section.setMarginTop(1000);    // উপরের মার্জিন 1000 পিক্সেল
        section.setMarginBottom(1000); // নীচের মার্জিন 1000 পিক্সেল
        section.setMarginLeft(1500);   // বামের মার্জিন 1500 পিক্সেল
        section.setMarginRight(1500);  // ডানের মার্জিন 1500 পিক্সেল

        // প্রথম প্যারাগ্রাফ যোগ করা
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এটি মার্জিন কনফিগার করা একটি প্যারাগ্রাফ।");

        // ডকুমেন্ট সংরক্ষণ
        FileOutputStream out = new FileOutputStream("MarginExample.docx");
        document.write(out);
        out.close();

        System.out.println("মার্জিন কনফিগার করা ডকুমেন্ট তৈরি এবং সংরক্ষণ করা হয়েছে।");
    }
}

এখানে, setMarginTop(), setMarginBottom(), setMarginLeft(), এবং setMarginRight() মেথডগুলো ব্যবহার করে মার্জিন কনফিগার করা হয়েছে। এই মার্জিনগুলি পৃষ্ঠার চারপাশে টেক্সটের অবস্থান নির্ধারণ করবে।


ইন্ডেন্টেশন কনফিগার করা

Indentation (ইন্ডেন্টেশন) একটি প্যারাগ্রাফের মধ্যে প্রথম লাইনের বা পুরো প্যারাগ্রাফের টেক্সটকে নির্দিষ্ট পরিমাণে সরে দেওয়া হয়। এটি সাধারণত left indentation, right indentation, এবং first line indentation হিসেবে কনফিগার করা হয়।

Example: ইন্ডেন্টেশন কনফিগার করা

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;

public class IndentationExample {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি
        XWPFDocument document = new XWPFDocument();

        // প্রথম প্যারাগ্রাফ যোগ করা
        XWPFParagraph paragraph1 = document.createParagraph();
        paragraph1.setAlignment(ParagraphAlignment.LEFT); // বাম পাশে এলাইনমেন্ট

        // ইন্ডেন্টেশন কনফিগার করা
        paragraph1.setIndentationLeft(720);  // বাম দিকে 720 পিক্সেল ইন্ডেন্টেশন
        paragraph1.setIndentationRight(720); // ডান দিকে 720 পিক্সেল ইন্ডেন্টেশন
        paragraph1.setIndentationFirstLine(720); // প্রথম লাইনের জন্য 720 পিক্সেল ইন্ডেন্টেশন

        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এটি একটি প্যারাগ্রাফ, যেখানে বাম ও ডান দিকের ইন্ডেন্টেশন এবং প্রথম লাইনের ইন্ডেন্টেশন কনফিগার করা হয়েছে।");

        // ডকুমেন্ট সংরক্ষণ
        FileOutputStream out = new FileOutputStream("IndentationExample.docx");
        document.write(out);
        out.close();

        System.out.println("ইন্ডেন্টেশন কনফিগার করা ডকুমেন্ট তৈরি এবং সংরক্ষণ করা হয়েছে।");
    }
}

এখানে:

  • setIndentationLeft(720): বাম দিকে ইন্ডেন্টেশন প্রয়োগ করা হয়েছে।
  • setIndentationRight(720): ডান দিকে ইন্ডেন্টেশন প্রয়োগ করা হয়েছে।
  • setIndentationFirstLine(720): প্রথম লাইনে ইন্ডেন্টেশন প্রয়োগ করা হয়েছে।

আপনি ইন্ডেন্টেশনটি পিক্সেল হিসেবে কনফিগার করতে পারেন।


মার্জিন এবং ইন্ডেন্টেশন একসাথে কনফিগার করা

আপনি একই ডকুমেন্টে মার্জিন এবং ইন্ডেন্টেশন একসাথে কনফিগার করতে পারেন, যা টেক্সটের অবস্থান এবং সজ্জা আরও নিয়ন্ত্রণে সহায়ক হবে।

Example: মার্জিন এবং ইন্ডেন্টেশন একসাথে কনফিগার করা

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;

public class MarginAndIndentationExample {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি
        XWPFDocument document = new XWPFDocument();

        // সেকশন তৈরি করা
        XWPFSection section = document.createSection();

        // মার্জিন কনফিগার করা
        section.setMarginTop(1000);    // উপরের মার্জিন 1000 পিক্সেল
        section.setMarginBottom(1000); // নীচের মার্জিন 1000 পিক্সেল
        section.setMarginLeft(1500);   // বামের মার্জিন 1500 পিক্সেল
        section.setMarginRight(1500);  // ডানের মার্জিন 1500 পিক্সেল

        // প্যারাগ্রাফ তৈরি এবং ইন্ডেন্টেশন কনফিগার করা
        XWPFParagraph paragraph1 = document.createParagraph();
        paragraph1.setIndentationLeft(720);  // বাম দিকে 720 পিক্সেল ইন্ডেন্টেশন
        paragraph1.setIndentationFirstLine(720); // প্রথম লাইনে ইন্ডেন্টেশন

        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এটি মার্জিন এবং ইন্ডেন্টেশন একসাথে কনফিগার করা একটি প্যারাগ্রাফ।");

        // ডকুমেন্ট সংরক্ষণ
        FileOutputStream out = new FileOutputStream("MarginAndIndentationExample.docx");
        document.write(out);
        out.close();

        System.out.println("মার্জিন এবং ইন্ডেন্টেশন একসাথে কনফিগার করা ডকুমেন্ট তৈরি এবং সংরক্ষণ করা হয়েছে।");
    }
}

এখানে, মার্জিন এবং ইন্ডেন্টেশন একসাথে কনফিগার করা হয়েছে, যা ডকুমেন্টের টেক্সটের অবস্থান এবং প্রেজেন্টেশনকে আরও নিয়ন্ত্রিত করবে।


সারাংশ

Apache POI এর XWPF API ব্যবহার করে আপনি মার্জিন এবং ইন্ডেন্টেশন কনফিগার করে Word ডকুমেন্টের ফরম্যাটিং নিয়ন্ত্রণ করতে পারেন। মার্জিন কনফিগার করার মাধ্যমে পৃষ্ঠার চারপাশে টেক্সটের অবস্থান নির্ধারণ করা যায়, এবং ইন্ডেন্টেশন কনফিগার করে প্যারাগ্রাফের প্রথম লাইনের বা পুরো প্যারাগ্রাফের টেক্সটকে সরে দেওয়া যায়। এটি ডকুমেন্টের গঠন এবং পঠনযোগ্যতাকে সহজ এবং সুন্দর করে তোলে।


common.content_added_by

কাস্টম পেজ লেআউট তৈরি করা

96
96

Apache POI ব্যবহার করে আপনি Microsoft Word ডকুমেন্টে কাস্টম Page Layout তৈরি করতে পারেন। কাস্টম পেজ লেআউটের মধ্যে পেজ অরিয়েন্টেশন (Landscape বা Portrait), পেজ সাইজ, মার্জিন, এবং অন্যান্য স্টাইলিং অপশন অন্তর্ভুক্ত থাকতে পারে। এই সমস্ত কাস্টমাইজেশনগুলি পেজ লেআউটকে আরও নির্দিষ্ট বা প্রোফেশনাল করে তোলে।

নিচে একটি উদাহরণ দেওয়া হলো, যেখানে কাস্টম Page Layout সেটআপ করা হয়েছে যেমন পেজ অরিয়েন্টেশন, সাইজ, মার্জিন ইত্যাদি।


১. পেজ অরিয়েন্টেশন এবং সাইজ কাস্টমাইজ করা

আপনি একটি কাস্টম পেজ অরিয়েন্টেশন এবং সাইজ সেট করতে পারেন। এখানে Portrait এবং Landscape উভয় ধরনের অরিয়েন্টেশন ব্যবহার করা হয়েছে।

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class CustomPageLayoutExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্রথম Section (Portrait Orientation)
        XWPFParagraph para1 = document.createParagraph();
        para1.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run1 = para1.createRun();
        run1.setText("This is the first section with Portrait orientation.");
        
        // পেজ অরিয়েন্টেশন পরিবর্তন (Landscape)
        XWPFSection section2 = document.createSection();
        section2.setOrientation(Orientation.LANDSCAPE); // Landscape Orientation

        // দ্বিতীয় Section (Landscape)
        XWPFParagraph para2 = document.createParagraph();
        para2.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run2 = para2.createRun();
        run2.setText("This is the second section with Landscape orientation.");

        // ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("custom_page_layout_example.docx");
        document.write(out);
        out.close();
    }
}

এখানে, প্রথম Section-এ Portrait অরিয়েন্টেশন ব্যবহার করা হয়েছে এবং দ্বিতীয় Section-এ Landscape অরিয়েন্টেশন দেওয়া হয়েছে।


২. কাস্টম পেজ সাইজ সেট করা

Microsoft Word ডকুমেন্টে পেজ সাইজ কাস্টমাইজ করা সম্ভব। আপনি একটি নির্দিষ্ট সাইজ যেমন A4, A3 বা কাস্টম সাইজ নির্ধারণ করতে পারেন। এখানে A4 সাইজ এবং কাস্টম সাইজের উদাহরণ দেখানো হয়েছে।

import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.xwpf.usermodel.XWPFFooter;

import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class CustomPageSizeExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্রথম Section (A4 সাইজ)
        XWPFParagraph para1 = document.createParagraph();
        para1.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run1 = para1.createRun();
        run1.setText("This is the first section with A4 size.");

        // কাস্টম পেজ সাইজ (উদাহরণ হিসেবে 6x9 inch সাইজ)
        XWPFSection section2 = document.createSection();
        section2.setPageSize(6 * 72, 9 * 72);  // 6x9 inch

        // দ্বিতীয় Section (কাস্টম সাইজ)
        XWPFParagraph para2 = document.createParagraph();
        para2.setAlignment(ParagraphAlignment.LEFT);
        XWPFRun run2 = para2.createRun();
        run2.setText("This is the second section with a custom page size (6x9 inches).");

        // ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("custom_page_size_example.docx");
        document.write(out);
        out.close();
    }
}

এখানে, A4 সাইজের একটি Section তৈরি করা হয়েছে এবং পরবর্তী Section-এ একটি কাস্টম সাইজ (6x9 inches) প্রয়োগ করা হয়েছে।


৩. কাস্টম পেজ মার্জিন

পেজের মার্জিন কাস্টমাইজ করা হলে, পুরো পেজের চারপাশে ডকুমেন্টের কনটেন্টের অবস্থান পরিবর্তিত হয়। আপনি top, bottom, left, এবং right মার্জিন কাস্টমাইজ করতে পারেন।

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class CustomPageMarginExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্রথম Section (ডিফল্ট মার্জিন)
        XWPFParagraph para1 = document.createParagraph();
        para1.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run1 = para1.createRun();
        run1.setText("This is the first section with default margins.");

        // সেকেন্ড Section (কাস্টম মার্জিন)
        XWPFParagraph para2 = document.createParagraph();
        para2.setAlignment(ParagraphAlignment.CENTER);
        para2.createRun().setText("\n\n---- Section Break ----\n\n");

        // মার্জিন কাস্টমাইজ করা
        XWPFSection section2 = document.createSection();
        section2.setMargins(72, 72, 72, 72);  // top, right, bottom, left মার্জিন (1 inch)

        XWPFParagraph para3 = document.createParagraph();
        para3.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run3 = para3.createRun();
        run3.setText("This is the second section with custom margins.");

        // ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("custom_page_margin_example.docx");
        document.write(out);
        out.close();
    }
}

এখানে, প্রথম Section-এ ডিফল্ট মার্জিন ব্যবহার করা হয়েছে এবং দ্বিতীয় Section-এ 1 inch মার্জিন (top, right, bottom, left) কাস্টমাইজ করা হয়েছে।


৪. Header এবং Footer কাস্টমাইজ করা

প্রতিটি Section এর জন্য আলাদা হেডার ও ফুটার ব্যবহার করা যেতে পারে। আপনি হেডার এবং ফুটারে কাস্টম টেক্সট, পেজ নাম্বার বা অন্যান্য ফরম্যাটিং যোগ করতে পারেন।

import org.apache.poi.xwpf.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;

public class CustomHeaderFooterExample {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // প্রথম Section Header
        XWPFHeader header1 = document.createHeader(HeaderFooterType.DEFAULT);
        XWPFParagraph paraHeader1 = header1.createParagraph();
        XWPFRun runHeader1 = paraHeader1.createRun();
        runHeader1.setText("Header for Section 1");

        // প্রথম Section Body
        XWPFParagraph para1 = document.createParagraph();
        para1.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun run1 = para1.createRun();
        run1.setText("This is the first section with header.");

        // দ্বিতীয় Section Header
        XWPFHeader header2 = document.createHeader(HeaderFooterType.DEFAULT);
        XWPFParagraph paraHeader2 = header2.createParagraph();
        XWPFRun runHeader2 = paraHeader2.createRun();
        runHeader2.setText("Header for Section 2");

        // দ্বিতীয় Section Body
        XWPFParagraph para2 = document.createParagraph();
        para2.setAlignment(ParagraphAlignment.LEFT);
        XWPFRun run2 = para2.createRun();
        run2.setText("This is the second section with a different header.");

        // ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("custom_header_footer_example.docx");
        document.write(out);
        out.close();
    }
}

এখানে, দুটি আলাদা Section-এর জন্য আলাদা Header যোগ করা হয়েছে।


৫. সারাংশ

Apache POI ব্যবহার করে আপনি Microsoft Word ডকুমেন্টে কাস্টম পেজ লেআউট তৈরি করতে পারেন। পেজ অরিয়েন্টেশন, সাইজ, মার্জিন, হেডার, ফুটার এবং অন্যান্য ফরম্যাটিং কাস্টমাইজেশন এর মাধ্যমে ডকুমেন্টের লেআউট সহজেই নিয়ন্ত্রণ করা সম্ভব। এই ফিচারগুলি আপনাকে একটি পেশাদারী ডকুমেন্ট ডিজাইন করতে সহায়তা করবে, বিশেষত যখন আপনার পেজ লেআউটটি নির্দিষ্ট স্ট্যান্ডার্ড বা ডিজাইন অনুসরণ করতে হবে।

common.content_added_by

Column Layout ব্যবস্থাপনা

135
135

Apache POI ব্যবহার করে Microsoft Word (DOCX) ডকুমেন্টে column layout তৈরি এবং কাস্টমাইজ করা সম্ভব। কলাম ব্যবহার করে আপনি ডকুমেন্টের কন্টেন্টকে বিভিন্ন সেগমেন্টে বিভক্ত করতে পারেন, যেমন পত্রিকা বা সংবাদপত্রের মতো সেগমেন্টেশন। এটি বিশেষভাবে দীর্ঘ টেক্সট কন্টেন্ট বা ফর্ম্যাটেড ডকুমেন্ট তৈরি করার জন্য উপকারী।

এখানে আমরা দেখবো কিভাবে columns তৈরি করা যায় এবং layout কাস্টমাইজ করা যায়।


১. Column Layout তৈরি করা

Word ডকুমেন্টে কলাম ব্যবহারের জন্য সাধারণত section breaks ব্যবহার করা হয়, যা নির্দিষ্ট অংশে একাধিক কলাম নির্ধারণ করে।

উদাহরণ: দুটি কলাম তৈরি করা

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFSection;

import java.io.FileOutputStream;
import java.io.IOException;

public class ColumnLayoutExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // একটি প্যারাগ্রাফ যোগ করা
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("এটি কলাম লেআউটের উদাহরণ।");

        // সেকশন ব্রেক ব্যবহার করে দুটি কলাম তৈরি করা
        XWPFSection section = document.createSection();
        section.getSectPr().getCols().setNumColumns(2); // কলাম সংখ্যা সেট করা

        // প্রথম কলামে কন্টেন্ট যোগ করা
        XWPFParagraph paragraph2 = section.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("প্রথম কলামে কিছু কন্টেন্ট।");

        // সেকেন্ড কলামে কন্টেন্ট যোগ করা
        XWPFParagraph paragraph3 = section.createParagraph();
        XWPFRun run3 = paragraph3.createRun();
        run3.setText("দ্বিতীয় কলামে কিছু কন্টেন্ট।");

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("ColumnLayoutExample.docx")) {
            document.write(out);
        }

        System.out.println("Column Layout created successfully!");
    }
}

কোড ব্যাখ্যা:

  • createSection(): একটি নতুন সেকশন তৈরি করার জন্য ব্যবহৃত হয়।
  • setNumColumns(2): সেকশনের মধ্যে কলামের সংখ্যা নির্ধারণ করে (এখানে ২টি কলাম)।
  • কলামের মধ্যে কন্টেন্ট যোগ করতে, আপনি প্যারাগ্রাফ তৈরি করতে পারেন এবং সেগুলিতে টেক্সট যোগ করতে পারেন।

২. Column Layout এর জন্য অতিরিক্ত কাস্টমাইজেশন

কলাম লেআউটের মধ্যে আপনি column width, spacing, এবং line spacing কাস্টমাইজ করতে পারেন। এই কাস্টমাইজেশনগুলি কলামের উপস্থিতি এবং ব্যবহারিক প্রভাবকে উন্নত করতে সহায়তা করবে।

উদাহরণ: কলামের প্রস্থ এবং spacing কাস্টমাইজ করা

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFSection;

import java.io.FileOutputStream;
import java.io.IOException;

public class CustomColumnLayoutExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // সেকশন ব্রেক ব্যবহার করে দুটি কলাম তৈরি করা
        XWPFSection section = document.createSection();
        section.getSectPr().getCols().setNumColumns(2); // কলাম সংখ্যা সেট করা
        section.getSectPr().getCols().setColumnWidth(3000); // কলামের প্রস্থ কাস্টমাইজ করা (পয়েন্টে)

        // কলামগুলির মধ্যে স্পেসিং কাস্টমাইজ করা
        section.getSectPr().getCols().setColumnSpacing(500); // কলামের মধ্যে স্পেসিং কাস্টমাইজ করা

        // প্রথম কলামে কন্টেন্ট যোগ করা
        XWPFParagraph paragraph1 = section.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("প্রথম কলামের কন্টেন্ট।");

        // সেকেন্ড কলামে কন্টেন্ট যোগ করা
        XWPFParagraph paragraph2 = section.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("দ্বিতীয় কলামের কন্টেন্ট।");

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("CustomColumnLayoutExample.docx")) {
            document.write(out);
        }

        System.out.println("Custom Column Layout with width and spacing created successfully!");
    }
}

কোড ব্যাখ্যা:

  • setColumnWidth(3000): কলামের প্রস্থ কাস্টমাইজ করে। এখানে ৩০০০ পয়েন্ট (পেজের প্রস্থ) হিসাবে সেট করা হয়েছে।
  • setColumnSpacing(500): কলামগুলির মধ্যে স্পেসিং কাস্টমাইজ করে (পয়েন্টে)।

৩. Multiple Columns with Different Content Styles

কলামের মধ্যে বিভিন্ন ধরনের কন্টেন্ট স্টাইল যেমন bold, italic, এবং underline ব্যবহার করে কন্টেন্টের বিভিন্ন বিভাগ তৈরি করা সম্ভব। কলামের মধ্যে ইনডেন্টেশন এবং ফন্ট সাইজ কাস্টমাইজ করাও করা যেতে পারে।

উদাহরণ: কলামের মধ্যে বিভিন্ন স্টাইল যুক্ত করা

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFSection;

import java.io.FileOutputStream;
import java.io.IOException;

public class StyledColumnLayoutExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // সেকশন ব্রেক ব্যবহার করে দুটি কলাম তৈরি করা
        XWPFSection section = document.createSection();
        section.getSectPr().getCols().setNumColumns(2); // কলাম সংখ্যা সেট করা

        // প্রথম কলামে কন্টেন্ট যোগ করা
        XWPFParagraph paragraph1 = section.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("প্রথম কলামের কন্টেন্ট, ফন্ট সাইজ ১২ এবং বোল্ড।");
        run1.setFontSize(12);
        run1.setBold(true);

        // সেকেন্ড কলামে কন্টেন্ট যোগ করা
        XWPFParagraph paragraph2 = section.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("দ্বিতীয় কলামে কন্টেন্ট, ইটালিক এবং আন্ডারলাইন সহ।");
        run2.setItalic(true);
        run2.setUnderline(true);

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("StyledColumnLayoutExample.docx")) {
            document.write(out);
        }

        System.out.println("Styled Column Layout created successfully!");
    }
}

কোড ব্যাখ্যা:

  • run1.setFontSize(12): প্রথম কলামে ফন্ট সাইজ কাস্টমাইজ করা।
  • run1.setBold(true): প্রথম কলামে টেক্সট বোল্ড করা।
  • run2.setItalic(true): দ্বিতীয় কলামে টেক্সট ইটালিক করা।
  • run2.setUnderline(true): দ্বিতীয় কলামে টেক্সট আন্ডারলাইন করা।

সারাংশ

Apache POI ব্যবহার করে Microsoft Word (DOCX) ডকুমেন্টে column layout তৈরি করা সম্ভব এবং আপনি columns এর সংখ্যা, প্রস্থ, স্পেসিং কাস্টমাইজ করতে পারেন। Multiple columns এর মধ্যে বিভিন্ন content styles যেমন bold, italic, এবং underline যোগ করা যায়, যাতে কলামের মধ্যে ভিন্ন ভিন্ন ফরম্যাটিং করতে পারেন। কলাম লেআউট ব্যবহারের মাধ্যমে আপনি দীর্ঘ ডকুমেন্টগুলোকে আরো পড়তে সুবিধাজনক এবং visually appealing বানাতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion